from flask import Flask, jsonify
from flask_cors import CORS

app = Flask(__name__)
CORS(app)

@app.route('/api/test', methods=['GET'])
def test():
    return jsonify({'success': True, 'message': 'Hello World!'})

@app.route('/api/status', methods=['GET'])
def status():
    return jsonify({
        'success': True,
        'message': 'API服务运行正常',
        'version': '1.0.0',
        'endpoints': ['/api/test', '/api/status', '/api/cities']
    })

@app.route('/api/cities', methods=['GET'])
def cities():
    # 扩展的城市列表（包含更多城市和县城）
    cities_list = [
        # 直辖市
        {'id': 1, 'name': '北京', 'code': 'BJS', 'level': 'municipality'},
        {'id': 2, 'name': '上海', 'code': 'SHA', 'level': 'municipality'},
        {'id': 3, 'name': '天津', 'code': 'TJP', 'level': 'municipality'},
        {'id': 4, 'name': '重庆', 'code': 'CQW', 'level': 'municipality'},
        
        # 省会城市
        {'id': 5, 'name': '广州', 'code': 'CAN', 'level': 'provincial_capital'},
        {'id': 6, 'name': '深圳', 'code': 'SZX', 'level': 'city'},
        {'id': 7, 'name': '杭州', 'code': 'HGH', 'level': 'provincial_capital'},
        {'id': 8, 'name': '南京', 'code': 'NJH', 'level': 'provincial_capital'},
        {'id': 9, 'name': '武汉', 'code': 'WHN', 'level': 'provincial_capital'},
        {'id': 10, 'name': '成都', 'code': 'CDW', 'level': 'provincial_capital'},
        {'id': 11, 'name': '西安', 'code': 'XAY', 'level': 'provincial_capital'},
        {'id': 12, 'name': '沈阳', 'code': 'SYT', 'level': 'provincial_capital'},
        {'id': 13, 'name': '哈尔滨', 'code': 'HBB', 'level': 'provincial_capital'},
        {'id': 14, 'name': '长春', 'code': 'CCT', 'level': 'provincial_capital'},
        {'id': 15, 'name': '石家庄', 'code': 'SJP', 'level': 'provincial_capital'},
        {'id': 16, 'name': '太原', 'code': 'TYV', 'level': 'provincial_capital'},
        {'id': 17, 'name': '呼和浩特', 'code': 'HHC', 'level': 'provincial_capital'},
        {'id': 18, 'name': '银川', 'code': 'YIJ', 'level': 'provincial_capital'},
        {'id': 19, 'name': '西宁', 'code': 'XNO', 'level': 'provincial_capital'},
        {'id': 20, 'name': '兰州', 'code': 'LZJ', 'level': 'provincial_capital'},
        {'id': 21, 'name': '乌鲁木齐', 'code': 'WAR', 'level': 'provincial_capital'},
        {'id': 22, 'name': '拉萨', 'code': 'LSO', 'level': 'provincial_capital'},
        {'id': 23, 'name': '昆明', 'code': 'KMM', 'level': 'provincial_capital'},
        {'id': 24, 'name': '贵阳', 'code': 'GIW', 'level': 'provincial_capital'},
        {'id': 25, 'name': '南宁', 'code': 'NNZ', 'level': 'provincial_capital'},
        {'id': 26, 'name': '海口', 'code': 'VUQ', 'level': 'provincial_capital'},
        {'id': 27, 'name': '福州', 'code': 'FZS', 'level': 'provincial_capital'},
        {'id': 28, 'name': '南昌', 'code': 'NCG', 'level': 'provincial_capital'},
        {'id': 29, 'name': '长沙', 'code': 'CSQ', 'level': 'provincial_capital'},
        {'id': 30, 'name': '合肥', 'code': 'HFH', 'level': 'provincial_capital'},
        {'id': 31, 'name': '郑州', 'code': 'ZZF', 'level': 'provincial_capital'},
        {'id': 32, 'name': '济南', 'code': 'JNK', 'level': 'provincial_capital'},
        
        # 重要地级市
        {'id': 33, 'name': '青岛', 'code': 'QDK', 'level': 'city'},
        {'id': 34, 'name': '大连', 'code': 'DLT', 'level': 'city'},
        {'id': 35, 'name': '厦门', 'code': 'XMS', 'level': 'city'},
        {'id': 36, 'name': '宁波', 'code': 'NGB', 'level': 'city'},
        {'id': 37, 'name': '苏州', 'code': 'SZV', 'level': 'city'},
        {'id': 38, 'name': '无锡', 'code': 'WUX', 'level': 'city'},
        {'id': 39, 'name': '常州', 'code': 'CZX', 'level': 'city'},
        {'id': 40, 'name': '温州', 'code': 'WNZ', 'level': 'city'},
        {'id': 41, 'name': '嘉兴', 'code': 'JXS', 'level': 'city'},
        {'id': 42, 'name': '湖州', 'code': 'HZH', 'level': 'city'},
        {'id': 43, 'name': '绍兴', 'code': 'SXG', 'level': 'city'},
        {'id': 44, 'name': '金华', 'code': 'JHA', 'level': 'city'},
        {'id': 45, 'name': '衢州', 'code': 'JUZ', 'level': 'city'},
        {'id': 46, 'name': '舟山', 'code': 'HSN', 'level': 'city'},
        {'id': 47, 'name': '台州', 'code': 'HYN', 'level': 'city'},
        {'id': 48, 'name': '丽水', 'code': 'LSS', 'level': 'city'},
        
        # 一些县城
        {'id': 49, 'name': '义乌', 'code': 'YIW', 'level': 'county'},
        {'id': 50, 'name': '永康', 'code': 'YKN', 'level': 'county'},
        {'id': 51, 'name': '东阳', 'code': 'DYA', 'level': 'county'},
        {'id': 52, 'name': '兰溪', 'code': 'LXI', 'level': 'county'},
        {'id': 53, 'name': '浦江', 'code': 'PJI', 'level': 'county'},
        {'id': 54, 'name': '武义', 'code': 'WYI', 'level': 'county'},
        {'id': 55, 'name': '磐安', 'code': 'PAN', 'level': 'county'},
        {'id': 56, 'name': '江山', 'code': 'JSA', 'level': 'county'},
        {'id': 57, 'name': '常山', 'code': 'CSA', 'level': 'county'},
        {'id': 58, 'name': '开化', 'code': 'KHA', 'level': 'county'},
        {'id': 59, 'name': '龙游', 'code': 'LYU', 'level': 'county'},
        {'id': 60, 'name': '岱山', 'code': 'DSH', 'level': 'county'},
        {'id': 61, 'name': '嵊泗', 'code': 'SSH', 'level': 'county'},
        {'id': 62, 'name': '天台', 'code': 'TTA', 'level': 'county'},
        {'id': 63, 'name': '仙居', 'code': 'XJU', 'level': 'county'},
        {'id': 64, 'name': '三门', 'code': 'SMN', 'level': 'county'},
        {'id': 65, 'name': '临海', 'code': 'LHI', 'level': 'county'},
        {'id': 66, 'name': '温岭', 'code': 'WLI', 'level': 'county'},
        {'id': 67, 'name': '玉环', 'code': 'YHU', 'level': 'county'},
        {'id': 68, 'name': '缙云', 'code': 'JYU', 'level': 'county'},
        {'id': 69, 'name': '青田', 'code': 'QTI', 'level': 'county'},
        {'id': 70, 'name': '云和', 'code': 'YHE', 'level': 'county'},
        {'id': 71, 'name': '庆元', 'code': 'QYU', 'level': 'county'},
        {'id': 72, 'name': '松阳', 'code': 'SYA', 'level': 'county'},
        {'id': 73, 'name': '景宁', 'code': 'JNI', 'level': 'county'},
        {'id': 74, 'name': '龙泉', 'code': 'LQU', 'level': 'county'},
        {'id': 75, 'name': '遂昌', 'code': 'SCH', 'level': 'county'},
    ]
    
    return jsonify({
        'success': True,
        'cities': cities_list,
        'source': f'扩展城市数据库（包含{len(cities_list)}个城市/县城）',
        'total': len(cities_list)
    })

@app.route('/api/search', methods=['POST'])
def search():
    from flask import request
    data = request.get_json()
    
    # 模拟搜索结果
    mock_routes = [
        {
            'total_time': 3.5,
            'total_price': 1200,
            'transfers': 1,
            'details': [
                {
                    'type': 'high_speed_rail',
                    'origin': data.get('origin', '北京'),
                    'destination': data.get('destination', '深圳'),
                    'departure_time': '08:00',
                    'arrival_time': '11:30',
                    'price': 1200
                }
            ]
        }
    ]
    
    return jsonify({
        'success': True,
        'routes': mock_routes,
        'message': f'为您找到 {len(mock_routes)} 条路线'
    })

@app.route('/api/chat', methods=['POST'])
def chat():
    from flask import request
    data = request.get_json()
    message = data.get('message', '')
    
    # 简单的AI回复
    if '北京' in message and '上海' in message:
        response = '🚄 从北京到上海有直达高铁！\n\nG1次列车\n⏰ 08:00 - 12:30 (4.5小时)\n💰 票价：¥553\n🎫 建议提前购票\n\n💡 其他选择：\n✈️ 飞机：约2-3小时，¥800-1200\n🚌 长途汽车：约8-12小时，¥200-400\n🚗 自驾：约12小时'
    elif '深圳' in message:
        response = '🔄 从北京到深圳没有直达高铁，为您推荐联运方案：\n\n方案1：北京 → 武汉 → 深圳 (高铁+高铁)\n⏱️ 总时间：6.5小时\n💰 总费用：¥650\n🔄 换乘：1次\n\n方案2：北京 → 郑州 → 深圳 (高铁+高铁)\n⏱️ 总时间：7.2小时\n💰 总费用：¥580\n🔄 换乘：1次\n\n💡 其他选择：\n✈️ 飞机：约3小时，¥1200\n🚌 长途汽车：约21小时，¥350\n🚗 自驾：约20小时'
    else:
        response = '您好！我是您的智能出行助手，可以帮您规划最优路线。请告诉我您的出发地、目的地和出行时间，我会为您提供最合适的交通方案！'
    
    return jsonify({
        'success': True,
        'response': response,
        'intent': {
            'type': 'route_search',
            'confidence': 0.9
        }
    })

if __name__ == '__main__':
    print("启动简单测试服务...")
    app.run(debug=True, host='0.0.0.0', port=5000)